package leetcode.list;

/**
 * 203.移除链表元素
 * <p>
 * 题意：删除链表中等于给定值 val 的所有节点。
 * <p>
 * 示例 1： 输入：head = [1,2,6,3,4,5,6], val = 6 输出：[1,2,3,4,5]
 * <p>
 * 示例 2： 输入：head = [], val = 1 输出：[]
 * <p>
 * 示例 3： 输入：head = [7,7,7,7], val = 7 输出：[]
 */
public class _203 {

    public static void main(String[] args) {

    }


    public static ListNode removeElements(ListNode head, int val) {

        ListNode fist = new ListNode(-1, head);
        ListNode temp = fist;

        while (temp.next != null) {
            // 判断下一节点是否符合预期
            if (temp.next.val==val){
                temp.next = temp.next.next;
            }else {
                temp = temp.next;
            }
        }
        return fist.next;

    }


    public static class ListNode {
        int val;
        ListNode next;

        ListNode() {
        }

        ListNode(int val) {
            this.val = val;
        }

        ListNode(int val, ListNode next) {
            this.val = val;
            this.next = next;
        }
    }
}
